/*
 * @Description:主、子应用共享数据
 * @Date: 2023-02-24 15:08:22
 */
import { initGlobalState } from "qiankun";
import { useSharedStore } from "@/stores/useSharedStore";

const state = {
  user: {},
};

const actions = initGlobalState(state);

// 监听通讯池的变化(源码--限制条件：每个子应用只有一个激活状态的全局监听，新监听覆盖旧监听，若只是监听部分属性，请使用 onGlobalStateChange)
actions.onGlobalStateChange((state, _) => {
  const userStore = useSharedStore();
  userStore.$patch(state);
});

// 主应用暴露至子应用自定义方法
actions.getStateCustom = function (key) {
  return key ? state[key] : state;
};

export default actions;
